package com.data.basic.chapter05;

/** 删除链表的重复元素的递归实现1
 * Created by wangbing on 2018/5/5.
 */
public class Solution3 {

    /**
     * 只考虑宏观语义： 整个方法的作用是删除val元素的节点，返回新的list
     *      那么开始遍历list，那么list的第一个节点head是要删除的val，那么剩下的(head.next)就是返回值res
     *      如果（head）不是的话，那就变成返回值res就是head;
     *
     * @param head
     * @param val
     * @return
     */
    public ListNode removeElements(ListNode head, int val) {
       if (head==null){
           return null;
       }
        ListNode res= removeElements(head.next,val);
        if (head.val==val){
            return res;
        }
        else {
            head.next = res;
            return head;
        }
    }
}
